/*
 * Copyright 2006-2023 ahtelit.com, All Rights Reserved.
 */

package com.telit.firecommand.model.camera;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;


/**
 * 第三方系统火情推送model
 *
 * @author yuezhuang
 * @since 2023-04-10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ThirdPushFireModel", description = "第三方系统火情推送model")
public class ThirdPushFireModel implements Serializable {

    private static final long serialVersionUID = -1L;

    @ApiModelProperty(value = "事件编号")
    private String id;

    @ApiModelProperty(value = "事件名称")
    private String name;

    @ApiModelProperty(value = "/设备编号")
    private String deviceId;

    @ApiModelProperty(value = "通道编号")
    private String channelId;

    @ApiModelProperty(value = "/时间")
    private String datetime;

    @ApiModelProperty(value = "设备经度")
    private BigDecimal longitude;

    @ApiModelProperty(value = "设备维度")
    private BigDecimal latitude;

    @ApiModelProperty(value = "设备海拔（米")
    private BigDecimal altitude;

    @ApiModelProperty(value = "设备塔高（米）")
    private BigDecimal height;

    @ApiModelProperty(value = "通道最小焦距（毫米）")
    private BigDecimal minFocus;

    @ApiModelProperty(value = "通道靶面高（毫米）")
    private BigDecimal sensorHeight;

    @ApiModelProperty(value = "通道靶面宽（毫米）")
    private BigDecimal sensorWidth;

    @ApiModelProperty(value = "识别框 X 坐标（像素）")
    private BigDecimal rectX;

    @ApiModelProperty(value = "识别框 Y 坐标（像素）")
    private BigDecimal rectY;

    @ApiModelProperty(value = "/识别框高（像素）")
    private BigDecimal rectHeight;

    @ApiModelProperty(value = "识别框宽（像素）")
    private BigDecimal rectWidth;

    @ApiModelProperty(value = "识别图片宽（像素）")
    private BigDecimal pictureWidth;

    @ApiModelProperty(value = "识别图片高（像素）")
    private BigDecimal pictureHeight;

    @ApiModelProperty(value = "通道原始水平角（度）")
    private BigDecimal originalPan;

    @ApiModelProperty(value = "通道矫正水平角（度）")
    private BigDecimal pan;

    @ApiModelProperty(value = "/通道垂直角（度）")
    private BigDecimal tilt;

    @ApiModelProperty(value = "通道放大倍数")
    private BigDecimal zoom;

    @ApiModelProperty(value = "火点角度（度）")
    private BigDecimal targetAngle;

    @ApiModelProperty(value = "火点经度")
    private BigDecimal targetLongitude;

    @ApiModelProperty(value = "火点纬度")
    private BigDecimal targetLatitude;

    @ApiModelProperty(value = "火点距离（米）")
    private BigDecimal targetDistance;

    @ApiModelProperty(value = "火点海拔（米）")
    private BigDecimal targetAltitude;

    @ApiModelProperty(value = "火点方位")
    private String targetDirection;

    @ApiModelProperty(value = "火点附件列表")
    private List<Attachment> attachments;


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ApiModel(value = "Attachment", description = "附件")
    public static class Attachment implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "扩展名：jpg,mp4")
        private String ext;

        @ApiModelProperty(value = "大小，单位 b")
        private Integer size;

        @ApiModelProperty(value = "附件编号")
        private String id;

    }

}
